/*
   file : shm.h
   University of Jiangsu
   memoryDB      2010.6
 */

#ifndef _MMDB_SHM_HEAD_H
#define _MMDB_SHM_HEAD_H

#include "def_head.h"

/*
   根据输入的共享内存大小,创建并绑定共享内存到本进程,共享内存起始地址保存在全局的ptr指针中
 */
int _get_init_shm(unsigned long db_size);

/*
   插入数据库信息到区域1中
 */
void _insert_db_info(char *db_name, unsigned long db_size, char *password);

/*
   插入一条表信息到共享内存区域2中
 */
int _insert_tb_info(char *tb_name, int numbers_of_column);

/*
   插入一条列信息到第3区域中
 */
int _insert_colu_info(int tb_id, char *column_name, int length, int type);

/*
   给指定的表申请一块新块,column_id为-1,暂时不使用
   返回之是新申请的这一块相对于共享内存起始地址的偏移量
 */
unsigned long _require_new_block(int tb_id);

/**/
int _save_zone123_to_disk();


/*
   根据传入的文件名和打开类型，打开此文件
 */
FILE *_open_dict_file(char *name, char *type);

/*
   删除文件或文件夹函数
 */
void rm_files(char *);

/*
   检测给定字符串是否符合给定的正则表达式
 */
int _check_input(const char *,char *);
#endif
